package logger

import (
	"go.uber.org/zap"
)

var logger *zap.Logger

func init() {
	var err error
	logger, err = zap.NewProduction()
	if err != nil {
		panic(err)
	}
	defer logger.Sync()
}

func Fatal(msg string, keysAndValues ...interface{}) {
	sugar := logger.Sugar()
	sugar.Fatalw(msg, keysAndValues...)
}

func Error(msg string, keysAndValues ...interface{}) {
	sugar := logger.Sugar()
	sugar.Errorw(msg, keysAndValues...)
}

func Warn(msg string, keysAndValues ...interface{}) {
	sugar := logger.Sugar()
	sugar.Warnw(msg, keysAndValues...)
}

func Info(msg string, keysAndValues ...interface{}) {
	sugar := logger.Sugar()
	sugar.Infow(msg, keysAndValues...)
}

func Debug(msg string, keysAndValues ...interface{}) {
	sugar := logger.Sugar()
	sugar.Debugw(msg, keysAndValues...)

}

func DebugZap(msg string, fields ...zap.Field) {
	logger.Debug(msg, fields...)
}
